Skip to content

fix: make capture and learning snapshots respect project consent - #87

Merged
ytvee merged 3 commits into
mainfrom
fix/learning-capture-snapshots
Oct 28, 2026
Merged

ytvee merged 3 commits into
mainfrom
fix/learning-capture-snapshots

Conversation

@ytvee

@ytvee ytvee commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Result

After a user declines repository snapshots, completed learning now keeps local memory and receipts without creating a snapshot or upload job. Accepting a private repository during adaptation enables a structured-memory snapshot after each completed cycle, including no-change outcomes. Capture, memory writes, improvement and Langfuse remain separate decisions.

Changes

  • Share state resolution across recording, analysis, run verification, tracing helpers, exchange and recovery. Preserve explicit hook state across client restarts; reject cross-project ownership conflicts.
  • Bind immutable snapshot jobs to their verified repository/folder, retain each run's snapshot hash, retry on the next requested completion or explicit sync, and exclude Langfuse archives. Support empty private repositories with exact readback.
  • Bound hook input/execution, preserve receipt/source time and completeness metadata, avoid content-based false deduplication, and expose content-free capture diagnostics. Unconfigured status/hooks do not create a database.
  • After completion, inspect raw-event count, structured records, SQLite+WAL and artifact sizes. At 50,000 events or 250 MiB, request approval for previewed cleanup; never delete or disable capture automatically. Protect referenced evidence.
  • Reconcile onboarding, update protection and learning instructions. The audit report documents concrete contradictions, resolutions, verification and limitations.

Verification

104 helper/regression tests passed locally. Ruff, Markdown (244 files), local links, strict schemas, source/generated-target checks and 12 candidate archives passed. All five GitHub checks passed again on final release-preparation head 58a822d: Windows helpers, Linux helpers, source/portable targets, lint and links. All 12 candidate archive checksums were also verified.

A live Codex CLI comparison of the refusal scenario distinguishes v1.9.0's unconditional local snapshot from the candidate's consent gate and storage-pressure question. Both were read-only and changed no files. A candidate manual-memory trial executed three-record insertion, integrity/audit and ID readback without rule edits; the outer audit process was denied access to the sandbox-created store, so persistence evidence is trace-observed, not independently certified. Later helper hardening is covered by regressions, not a claim of final-head live certification.

Real native-client hook delivery and production GitHub/Langfuse delivery remain unverified. API tests use isolated injected responses; no personal learning repository, credentials or production traces were used.

Scope

Based on released v1.9.0. STEM and ASI installations are unchanged. The user separately authorized merge and publication as v1.9.1 on 2026-10-29. Historical release inventories remain historical. See docs/release/learning-capture-audit.md for the audit and evidence boundaries.

@ytvee
ytvee merged commit fce3c1d into main Oct 28, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant